package com.jwsoft.manager.common.vo.addressParse;

import com.jwsoft.manager.common.vo.eduAddress.EduAddressVO;
import com.jwsoft.manager.common.vo.eduAddressTreeInitial.EduAddressTreeInitialVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * 格式化的地址信息
 *
 * @author chenzh
 */
@Data
public class AddressInfo implements Serializable {
    /**
     * 国家
     **/
    private String country;

    /**
     * 省
     **/
    private String province;

    private String provinceAlias;

    private Long provinceId;

    private String provinceCode;

    /**
     * 地市
     */

    private String city;

    private String cityAlias;

    private Long cityId;

    private String cityCode;

    /**
     * 区，县
     */
    private Long districtId;

    private String district;

    private String districtAlias;

    private String districtCode;

    /**
     * 乡镇，街道
     */
    private Long townId;

    private String town;

    private String townAlias;

    private String townCode;

    /**
     * 村，社区
     */
    private Long villageId;

    private String village;

    private String villageAlias;

    private String villageCode;

    /**
     * 详细地址
     */
    private String detail;

    private Long detailId;

    private String detailAlias;

    /**
     * 原始地址
     */
    private String originAdd;

    //以下是地址类型  -非行政区划
    /**
     * 路街道 编号
     */
    @Schema(name = "roadId", title = "路街道id")
    private Long roadId;
    /**
     * 路街道 名称
     */
    @Schema(name = "road", title = "路街道 名称")
    private String road;

    /**
     * 路街道 编号
     */
    @Schema(name = "roadNumber", title = "路街道 编号")
    private String roadNumber;
    /**
     * 路街道 编号
     */
    @Schema(name = "roadNumberId", title = "路街道 编号id")
    private String roadNumberId;

    @Schema(name = "roadAlias", title = "路别名")
    private String roadAlias;
    /**
     * 住宅区
     */

    private String name;
    @Schema(name = "residentialId", title = "住宅区id")
    private Long residentialId;
    /**
     * 楼房编号  几幢
     */
    private String houseNumber;

    /**
     * 单元编号
     */
    private String unitNumber;


    /**
     * 门派号
     */
    @Schema(name = "roomNumber", title = "门派号")
    private String roomNumber;

    private String otherAddress = "";




    /**
     * 叶子节点id
     */
    @Schema(name = "addressId", title = "叶子节点id")
    private Long addressId;


    /**
     * 当前节点类型
     */
    @Schema(name = "areaType", title = "当前节点类型")
    private String areaType;

    /**
     * 格式化后最小节点id
     */
    @Schema(name = "miniAreaId", title = "格式化后最小节点id")
    private Long miniAreaId;

    @Schema(name = "eduAddressId", title = "edu_address主键")
    private String eduAddressId;




    /**
     * 错误状态
     * 0 正常
     * 1 错误
     * 9 不予处理
     */
    private int errorStatus ;

    /*
     * 错误描述
     */
    private String errorDetail;

    /**
     * 解析后的地址节点
     */
    private List<EduAddressTreeInitialVO> parseNodes;

    /**
     * 其他县市 1 该地址明确匹配为其他地市，需要标志为不予处理
     */
    private Boolean isOtherCity = false;
}
